home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2008 February / PCWFEB08.iso / Software / Freeware / Miro 1.0 / Miro_Installer.exe / Miro_Downloader.exe / test / playlisttest.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2007-11-12  |  10.2 KB  |  444 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.5)
  3.  
  4. from feed import Feed
  5. from feedparser import FeedParserDict
  6. from item import Item
  7. from playlist import SavedPlaylist
  8. from folder import PlaylistFolder
  9. import app
  10. import views
  11. import tabs
  12. from test.framework import EventLoopTest
  13.  
  14. class PlaylistTestBase(EventLoopTest):
  15.     
  16.     def setUp(self):
  17.         EventLoopTest.setUp(self)
  18.         self.feed = Feed(u'http://feed.uk')
  19.         self.i1 = Item(FeedParserDict({
  20.             'title': u'item1' }), feed_id = self.feed.id)
  21.         self.i2 = Item(FeedParserDict({
  22.             'title': u'item2' }), feed_id = self.feed.id)
  23.         self.i3 = Item(FeedParserDict({
  24.             'title': u'item3' }), feed_id = self.feed.id)
  25.         self.i4 = Item(FeedParserDict({
  26.             'title': u'item4' }), feed_id = self.feed.id)
  27.  
  28.     
  29.     def checkList(self, playlist, correctOrder):
  30.         realPositions = { }
  31.         i = 0
  32.         for listid, item in zip(playlist.trackedItems.list, correctOrder):
  33.             self.assertEquals(listid, item.getID())
  34.             realPositions[item.getID()] = i
  35.             i += 1
  36.         
  37.         self.assertEquals(set(playlist.trackedItems.list), playlist.trackedItems.trackedIDs)
  38.         self.assertEquals(realPositions, playlist.trackedItems.positions)
  39.         self.assertEquals(playlist.getItems(), correctOrder)
  40.  
  41.     
  42.     def doAppend(self, playlist, objects):
  43.         []([]([ i.getID() for i in objects ]))
  44.  
  45.     
  46.     def doReorder(self, playlist, anchor, objects):
  47.         set([], []([ i.getID() for i in objects ]))
  48.  
  49.  
  50.  
  51. class PlaylistTestCase(PlaylistTestBase):
  52.     
  53.     def setUp(self):
  54.         PlaylistTestBase.setUp(self)
  55.         self.addCallbacks = []
  56.         self.removeCallbacks = []
  57.  
  58.     
  59.     def addCallback(self, obj, id):
  60.         self.addCallbacks.append((obj, id))
  61.  
  62.     
  63.     def removeCallback(self, obj, id):
  64.         self.removeCallbacks.append((obj, id))
  65.  
  66.     
  67.     def testBasicOperations(self):
  68.         playlist = SavedPlaylist('rocketboom')
  69.         self.assertEquals(playlist.getTitle(), 'rocketboom')
  70.         self.assertEquals(playlist.getItems(), [])
  71.         playlist.addItem(self.i4)
  72.         playlist.addItem(self.i1)
  73.         playlist.addItem(self.i3)
  74.         playlist.addItem(self.i2)
  75.         self.checkList(playlist, [
  76.             self.i4,
  77.             self.i1,
  78.             self.i3,
  79.             self.i2])
  80.         playlist.addItem(self.i2)
  81.         self.checkList(playlist, [
  82.             self.i4,
  83.             self.i1,
  84.             self.i3,
  85.             self.i2])
  86.         self.assert_(self.i1.keep)
  87.         self.assert_(self.i2.keep)
  88.         self.assert_(self.i3.keep)
  89.         self.assert_(self.i4.keep)
  90.         playlist.moveItem(self.i2, 1)
  91.         self.checkList(playlist, [
  92.             self.i4,
  93.             self.i2,
  94.             self.i1,
  95.             self.i3])
  96.         playlist.moveItem(self.i3, 0)
  97.         self.checkList(playlist, [
  98.             self.i3,
  99.             self.i4,
  100.             self.i2,
  101.             self.i1])
  102.         playlist.moveItem(self.i3, 3)
  103.         self.checkList(playlist, [
  104.             self.i4,
  105.             self.i2,
  106.             self.i1,
  107.             self.i3])
  108.         playlist.removeItem(self.i2)
  109.         self.checkList(playlist, [
  110.             self.i4,
  111.             self.i1,
  112.             self.i3])
  113.         playlist.removeItem(self.i3)
  114.         self.checkList(playlist, [
  115.             self.i4,
  116.             self.i1])
  117.  
  118.     
  119.     def testInitialList(self):
  120.         initialList = [
  121.             self.i1,
  122.             self.i2,
  123.             self.i3]
  124.         playlist = SavedPlaylist('rocketboom', initialList)
  125.         self.assertEquals(playlist.getTitle(), 'rocketboom')
  126.         self.checkList(playlist, initialList)
  127.  
  128.     
  129.     def checkCallbacks(self, movedItems):
  130.         correctCallbackList = [ (i, i.getID()) for i in movedItems ]
  131.         self.assertEquals(self.addCallbacks, correctCallbackList)
  132.         self.assertEquals(self.removeCallbacks, correctCallbackList)
  133.  
  134.     
  135.     def testCallbacks(self):
  136.         initialList = [
  137.             self.i1,
  138.             self.i2,
  139.             self.i3]
  140.         playlist = SavedPlaylist('rocketboom', initialList)
  141.         playlist.getView().addAddCallback(self.addCallback)
  142.         playlist.getView().addRemoveCallback(self.removeCallback)
  143.         playlist.moveItem(self.i2, 0)
  144.         self.checkCallbacks([
  145.             self.i2])
  146.         playlist.moveItem(self.i3, 0)
  147.         self.checkCallbacks([
  148.             self.i2,
  149.             self.i3])
  150.  
  151.     
  152.     def testHandleDrop(self):
  153.         playlist = SavedPlaylist('rocketboom')
  154.         self.doAppend(playlist, [
  155.             self.i1])
  156.         self.checkList(playlist, [
  157.             self.i1])
  158.         self.doAppend(playlist, [
  159.             self.i3])
  160.         self.checkList(playlist, [
  161.             self.i1,
  162.             self.i3])
  163.         self.doAppend(playlist, [
  164.             self.i3,
  165.             self.i4])
  166.         self.checkList(playlist, [
  167.             self.i1,
  168.             self.i3,
  169.             self.i4])
  170.  
  171.     
  172.     def testMoveSelectionAboveItem(self):
  173.         playlist = SavedPlaylist('rocketboom', [
  174.             self.i1,
  175.             self.i2,
  176.             self.i3,
  177.             self.i4])
  178.         view = playlist.getView()
  179.         self.doReorder(playlist, self.i3, [
  180.             self.i1])
  181.         self.checkList(playlist, [
  182.             self.i2,
  183.             self.i1,
  184.             self.i3,
  185.             self.i4])
  186.         self.doReorder(playlist, None, [
  187.             self.i1])
  188.         self.checkList(playlist, [
  189.             self.i2,
  190.             self.i3,
  191.             self.i4,
  192.             self.i1])
  193.         self.doReorder(playlist, self.i2, [
  194.             self.i1])
  195.         self.checkList(playlist, [
  196.             self.i1,
  197.             self.i2,
  198.             self.i3,
  199.             self.i4])
  200.         self.doReorder(playlist, self.i1, [
  201.             self.i2,
  202.             self.i3,
  203.             self.i4])
  204.         self.checkList(playlist, [
  205.             self.i2,
  206.             self.i3,
  207.             self.i4,
  208.             self.i1])
  209.         self.doReorder(playlist, self.i4, [
  210.             self.i2,
  211.             self.i1])
  212.         self.checkList(playlist, [
  213.             self.i3,
  214.             self.i2,
  215.             self.i1,
  216.             self.i4])
  217.         self.doReorder(playlist, None, [
  218.             self.i1,
  219.             self.i3])
  220.         self.checkList(playlist, [
  221.             self.i2,
  222.             self.i4,
  223.             self.i3,
  224.             self.i1])
  225.         self.doReorder(playlist, None, [
  226.             self.i2,
  227.             self.i3,
  228.             self.i4])
  229.         self.checkList(playlist, [
  230.             self.i1,
  231.             self.i2,
  232.             self.i4,
  233.             self.i3])
  234.  
  235.     
  236.     def testExpireRemovesItem(self):
  237.         checkList = [
  238.             self.i1,
  239.             self.i2,
  240.             self.i3,
  241.             self.i4]
  242.         playlist = SavedPlaylist('rocketboom', checkList)
  243.         for i in [
  244.             self.i1,
  245.             self.i3,
  246.             self.i4,
  247.             self.i2]:
  248.             i.expire()
  249.             checkList.remove(i)
  250.             self.checkList(playlist, checkList)
  251.         
  252.  
  253.  
  254.  
  255. class PlaylistFolderTestCase(PlaylistTestBase):
  256.     
  257.     def setUp(self):
  258.         PlaylistTestBase.setUp(self)
  259.         self.playlistTabOrder = tabs.TabOrder(u'playlist')
  260.         self.p1 = SavedPlaylist('rocketboom', [
  261.             self.i1,
  262.             self.i3])
  263.         self.p2 = SavedPlaylist('telemusicvision', [
  264.             self.i4,
  265.             self.i3])
  266.         self.p3 = SavedPlaylist('digg', [
  267.             self.i1,
  268.             self.i2,
  269.             self.i3,
  270.             self.i4])
  271.         self.folder = PlaylistFolder('My Best Vids')
  272.         self.folder.setExpanded(True)
  273.         self.runPendingIdles()
  274.  
  275.     
  276.     def doTabReorder(self, anchorID, items):
  277.         set([], []([ i.getID() for i in items ]))
  278.  
  279.     
  280.     def doPlaylistRemove(self, playlist, items):
  281.         []([]([ i.getID() for i in items ]))
  282.  
  283.     
  284.     def testHandleDrop(self):
  285.         self.doAppend(self.folder, [
  286.             self.p1])
  287.         self.checkList(self.folder, [
  288.             self.i1,
  289.             self.i3])
  290.         self.doAppend(self.folder, [
  291.             self.p2])
  292.         self.checkList(self.folder, [
  293.             self.i1,
  294.             self.i3,
  295.             self.i4])
  296.         self.doAppend(self.folder, [
  297.             self.p1,
  298.             self.p2,
  299.             self.p3])
  300.         self.checkList(self.folder, [
  301.             self.i1,
  302.             self.i3,
  303.             self.i4,
  304.             self.i2])
  305.  
  306.     
  307.     def testHandleDropUnexpanded(self):
  308.         self.folder.setExpanded(False)
  309.         selection = app.controller.selection
  310.         selection.selectItem('tablist', self.playlistTabOrder.getView(), self.p1.getID(), shiftSelect = False, controlSelect = False)
  311.         self.doAppend(self.folder, [
  312.             self.p1])
  313.         app.controller.selection.tabListSelection
  314.         selectedTabIDs = selection.tabListSelection.currentSelection
  315.         self.assertEquals(selectedTabIDs, set([
  316.             self.folder.getID()]))
  317.  
  318.     
  319.     def testExpireRemovesItem(self):
  320.         self.doAppend(self.folder, [
  321.             self.p1])
  322.         self.checkList(self.folder, [
  323.             self.i1,
  324.             self.i3])
  325.         self.i1.expire()
  326.         self.checkList(self.folder, [
  327.             self.i3])
  328.         self.i3.expire()
  329.         self.checkList(self.folder, [])
  330.  
  331.     
  332.     def testRemovePlaylistRemovesItem(self):
  333.         for pl in [
  334.             self.p1,
  335.             self.p2,
  336.             self.p3]:
  337.             self.doAppend(self.folder, [
  338.                 pl])
  339.         
  340.         self.checkList(self.folder, [
  341.             self.i1,
  342.             self.i3,
  343.             self.i4,
  344.             self.i2])
  345.         self.doTabReorder(None, [
  346.             self.p3])
  347.         self.checkList(self.folder, [
  348.             self.i1,
  349.             self.i3,
  350.             self.i4])
  351.         self.doTabReorder(None, [
  352.             self.p2])
  353.         self.checkList(self.folder, [
  354.             self.i1,
  355.             self.i3])
  356.         self.doTabReorder(None, [
  357.             self.p1])
  358.         self.checkList(self.folder, [])
  359.  
  360.     
  361.     def testReorder(self):
  362.         for pl in [
  363.             self.p1,
  364.             self.p2,
  365.             self.p3]:
  366.             self.doAppend(self.folder, [
  367.                 pl])
  368.         
  369.         self.checkList(self.folder, [
  370.             self.i1,
  371.             self.i3,
  372.             self.i4,
  373.             self.i2])
  374.         self.doReorder(self.p1, None, [
  375.             self.i1])
  376.         self.checkList(self.folder, [
  377.             self.i1,
  378.             self.i3,
  379.             self.i4,
  380.             self.i2])
  381.         self.doReorder(self.folder, None, [
  382.             self.i2])
  383.         self.checkList(self.p1, [
  384.             self.i3,
  385.             self.i1])
  386.         self.checkList(self.p2, [
  387.             self.i4,
  388.             self.i3])
  389.         self.checkList(self.p3, [
  390.             self.i1,
  391.             self.i2,
  392.             self.i3,
  393.             self.i4])
  394.         self.p1 = SavedPlaylist('rocketboom', [
  395.             self.i1,
  396.             self.i3])
  397.         self.p2 = SavedPlaylist('telemusicvision', [
  398.             self.i4,
  399.             self.i3])
  400.         self.p3 = SavedPlaylist('digg', [
  401.             self.i1,
  402.             self.i2,
  403.             self.i3,
  404.             self.i4])
  405.  
  406.     
  407.     def testRemoveItemFromPlaylist(self):
  408.         for pl in [
  409.             self.p1,
  410.             self.p2,
  411.             self.p3]:
  412.             self.doAppend(self.folder, [
  413.                 pl])
  414.         
  415.         self.checkList(self.folder, [
  416.             self.i1,
  417.             self.i3,
  418.             self.i4,
  419.             self.i2])
  420.         self.doPlaylistRemove(self.p1, [
  421.             self.i1])
  422.         self.checkList(self.folder, [
  423.             self.i1,
  424.             self.i3,
  425.             self.i4,
  426.             self.i2])
  427.         self.doPlaylistRemove(self.p3, [
  428.             self.i1])
  429.         self.checkList(self.folder, [
  430.             self.i3,
  431.             self.i4,
  432.             self.i2])
  433.  
  434.     
  435.     def testRemoveFolderRemovesPlaylist(self):
  436.         self.doAppend(self.folder, [
  437.             self.p1,
  438.             self.p2,
  439.             self.p3])
  440.         self.folder.remove()
  441.         self.assertEquals(len(views.playlists), 0)
  442.  
  443.  
  444.